2


Командные кнопки

Поговорим о командных кнопках. Командные кнопки являются одним из самых простых и используемых элементов управления. Они весьма удобны, т.к. их назначение интуитивно понятно: на них надо кликнуть левой кнопкой мыши и после этого что-то произойдет.

Так как это первый элемент управления, который мы рассматриваем, займемся им обстоятельно и рассмотрим практически все его свойства. Это очень поможет нам в последствии. Итак, командная кнопка (CommandButton) имеет свойства:

1) Name - имя кнопки (самое важно свойство для VB, поэтому в списке свойств всегда располагается сверху).
2) Height - содержит высоту командной кнопки в твипах.
3) Width - содержит ширину командной кнопки в твипах.
4) Left - содержит расстояние между левым краем формы и кнопкой.
5) Top - содержит расстояние между верхним краем формы и кнопкой.
6) Style - определяет наличие (отсутствие) на кнопке рисунка. Обратите внимание, что это свойство "выбирается" из раскрывающегося списка и может принимать только два значения: (Standart - 0, Graphical - 1).
7) BackColor - задает цвет фона командной кнопки. Обратите внимание, что это свойство начинает действовать только если свойство Style=Graphical.
8) Font - задает шрифт текста на командной кнопке. Обратите внимание, что это свойство состоит в свою очередь из нескольких свойств: имя шрифа (список), начертание (обычный, курсив, жирный), размер, атрибуты (зачеркнутый, подчеркнутый).
9) Picture - содержит имя графического файла, расположенного на командной кнопке. Естественно, что это свойство начинает работать только в том случае, если свойство Style=Graphical.
10) Caption - содержит текст, расположенный на кнопке.
11) Default - определяет, реагирует ли кнопка на событие Enter (пользователь нажал Enter) "по-любому", т.е. даже в том случае, если другой элемент управления имел фокус. См. комментарий к свойству Cansel.
12) Cansel - определяет, реагирует ли кнопка на событие ESC (пользователь нажал Esc) "по-любому", т.е. в процессе работы на форме пользователь нажал Esc и, если это свойство установлено, то срабатывает процедура, закрепленная за этой командной кнопкой. Замечание: эти два последних события являются логическими (boolean) и могут принимать значения False или True. Более того, только одна кнопка на форме может иметь такое событие (Default или Cansel).
13) Enabled - определяет, является ли кнопка активной (boolean).
14) Visible - определяет, является ли кнопка видимой (boolean).
15) TabIndex - указывает порядок кнопки в фокусном порядке. Дело в том, что большинство элементов, помещаемых на форму, могут принимать фокус и принимают его в том порядке, в котором они были помещены на форму. Если мы хотим установить свой порядок (а мы всегда этого хотим!), то имеет смысл установить значения этого свойства у элементов так, как нам надо.
16) TabStop - определяет, может ли кнопка принимать фокус.
17) ToolTipText - определяет текст, появляющийся в качестве подсказки на кнопке при наведении на нее указателя мыши.

Большой пример. Создадим приложение, состоящее из формы, на которой есть две кнопки "Больше" и "Меньше". Эта форма должна управлять видом обеих кнопок: делать их больше или меньше соответственно.

1) Создайте новый проект и присвойте заголовку формы приложения надпись "Командные кнопки: больше, меньше".
2) Поместите на форму две кнопки: Command1, Command2. Измените их имена на cmdBig, cmdLittle, а текст поменяйте на "Больше", "Меньше" соответственно. Ваша форма должна иметь вид:

3) Давайте подумаем: что надо делать, чтобы кнопка становилась больше (или меньше?) Очевидно, что необходимо менять ее координаты, отвечающие за какой-нибудь угол (а лучше за все углы сразу). Но для нас будет достаточно, чтобы увеличивались (или, соответственно, уменьшались) координаты правого нижнего угла, а они задаются свойствами Width, Height. Таким образом, процедуры для кнопок cmdBig, cmdLittle будут такие:

Private Sub cmdBig_Click()
	cmdBig.Width = cmdBig.Width + 10
	cmdBig.Height = cmdBig.Height + 10
	cmdLittle.Width = cmdLittle.Width + 10
	cmdLittle.Height = cmdLittle.Height + 10
End Sub

Private Sub cmdLittle_Click()
	cmdBig.Width = cmdBig.Width - 10
	cmdBig.Height = cmdBig.Height - 10
	cmdLittle.Width = cmdLittle.Width - 10
	cmdLittle.Height = cmdLittle.Height - 10<
End Sub

4) Протестируйте и сохраните проект в своем каталоге.

Замечание. Стоит сказать, что все наше программирование в VB есть простое изменение свойств элементов управления. Вряд ли когда-нибудь мы будем рассматривать другое событие командной кнопки, кроме Click(), хотя их огромное множество (посмотрите раздел доступных событий). Вряд ли мы будем задавать у командной кнопки какие-то свойства, кроме Caption (название) и Name (имя кнопки), хотя описали их почти два десятка.

Задания по лабораторной работе 2


1. Прочитать и законспектировать работу, проверить пример.
2. Разобрать два дополнительных примера (только для тех, у кого есть пособие и дискета с дополнительными примерами).
3. Выбрать любое отчетное задание: "создать программу, которая..."
1 играет на форме двумя кнопками: щелкнешь на первой - она исчезает, появляется вторая, щелкнешь на второй - она исчезает, появляется первая;
2 играет на форме двумя кнопками ("Сходитесь", "Расходитесь"): при щелчке на первой кнопки двигаются друг к другу, при щелчке на второй расходятся;
3 играет на форме с тремя кнопками ("Тест", "+", "-"): при кликаньи на кнопке "+" кнопка "Тест" растет во все стороны, при кликаньи на кнопке "-" кнопка "Тест" сжимается;
4 играет на форме тремя кнопками "Зеленый", "Красный", "Желтый": при кликаньи на них цвет формы меняется на соответствующий;
5 на форме есть пять кнопок, при нахождении на которыми курсор мыши изменяет свой вид на другой.

Хостинг от uCoz